From ffc7a87f6566d9ab5e28b088ef889152f5931bc8 Mon Sep 17 00:00:00 2001 From: "awilliam@xenbuild.aw" Date: Wed, 22 Nov 2006 10:13:31 -0700 Subject: [PATCH] [IA64] fix a bug in vmx_send_assist_req() We must do_softirq() explicitly to enter scheduler If not, booting a windows guest and a linux guest at the same time will lead to a system hang. Signed-off-by: Zhang Xin --- xen/arch/ia64/vmx/vmx_support.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/xen/arch/ia64/vmx/vmx_support.c b/xen/arch/ia64/vmx/vmx_support.c index ea7e24afe8..667d983857 100644 --- a/xen/arch/ia64/vmx/vmx_support.c +++ b/xen/arch/ia64/vmx/vmx_support.c @@ -76,11 +76,6 @@ void vmx_send_assist_req(struct vcpu *v) p->state = STATE_IOREQ_READY; notify_via_xen_event_channel(v->arch.arch_vmx.xen_port); - /* - * Waiting for MMIO completion - * like the wait_on_xen_event_channel() macro like... - * but, we can't call do_softirq() at this point.. - */ for (;;) { if (p->state != STATE_IOREQ_READY && p->state != STATE_IOREQ_INPROCESS) @@ -96,6 +91,7 @@ void vmx_send_assist_req(struct vcpu *v) } raise_softirq(SCHEDULE_SOFTIRQ); + do_softirq(); mb(); } -- 2.30.2